This invention relates to programmable logic devices, and more particularly to improved programmable logic elements for use in programmable logic devices.
Programmable logic devices contain programmable circuitry that can be customized by a user to provide a desired logic function. Such devices are popular, in part because they allow a user to implement a circuit design much more quickly than is possible by fabricating a custom integrated circuit.
At their most basic level, all programmable logic devices contain some sort of programmable logic element. Because the operation of a programmable logic device is governed by the states of its individual logic elements, the user can configure the circuitry of a programmable logic device by programming the programmable logic elements. The way in which the programmable logic elements are programmed depends on the type of programmable logic element that is used. For example, if the programmable logic elements within a programmable logic device are fuses made of short metal links, then the programmable logic device is programmed by selectively blowing certain fuses.
Other suitable programmable logic elements include those based on anti-fuses, static random access memory (SRAM) transistor elements, dynamic random access memory (DRAM), erasable programmable read-only memory (EPROM) transistors, FLASH transistors, and electrically-erasable programmable read-only memory (EEPROM) transistors.
Anti-fuse-based devices work similarly to fuses, except that anti-fuses are programmed by applying voltages which, when exceeded, convert an initially open circuit to a permanently closed one. Both fuses and anti-fuses can only be programmed once. If it is desired to alter the configuration of a programmable logic device based on fuses or anti-fuses that has been programmed, the device must be discarded.
SRAM-based devices store bits of programming data in an array of bi-stable logic elements (e.g., flip-flops). Each bit is written once and remains until the bit is rewritten or until the power to the device is turned off. Because the stored program is volatile, provisions must be made for programming such devices in the field, which is not always desirable.
DRAM-based devices store bits on charged capacitors. Data stored in a DRAM-based device typically cannot be retained for more than a brief interval unless the DRAM elements are refreshed. Thus, DRAM-based devices are volatile like SRAM-based devices.
Programmable logic elements based on EPROM transistors are non-volatile. EPROM transistors have floating gates which may be charged by connecting a programming voltage (V.sub.pp) of approximately 10-15 volts on the control gate and 6-8 volts between the source and the drain. The high fields caused by the large drain and control gate voltages create hot electrons in the conducting channel of the EPROM transistor. Some of the hot electrons flow onto the floating gate, thereby charging the floating gate and raising the transistor's threshold voltage. Because the state of an EPROM transistor's floating gate (i.e., charged or not charged) affects the transistor's threshold state, the state of the transistor may be determined from the switching behavior of the device.
Generally, when the threshold voltage of a transistor is greater than the normal operating voltage V.sub.cc, a MOSFET channel will not form and the transistor will not conduct between its drain and source. (A normal operating voltage, V.sub.cc, as used herein, refers to any voltage between about 1.0 volts and about 7.0 volts, and typically about 3.3 volts.) A programmable logic element formed from an EPROM transistor in a high threshold state is sometimes referred to as being "off," or "open." In the off state, it is desirable that the threshold voltage be raised as high as possible above V.sub.cc to provide a guard band effect in the event that variations in the applied voltage or threshold voltage degradation are experienced during normal operation. For an n-type MOSFET if the threshold voltage is less than or equal to zero volts, a conductive channel is formed between the drain and the source, even with no gate bias. An EPROM-based programmable logic element having a transistor in a low threshold state is often referred to as being "on," or "closed." In the on state, it is desirable that the threshold voltage be low enough to substantially eliminate any signal degradation (i.e., voltage drop across the transistor) during operation.
EEPROM-based programmable logic devices are non-volatile and have floating gates. They can be selectively reprogrammed by applying electrical pulses across a very thin tunneling dielectric (typically from about 70 .ANG. to about 100 .ANG.) to individual EEPROM programmable logic elements. One variety of EEPROM, called FLASH EEPROM, is also capable of being fabricated at a high density. However, EEPROM transistors fabricated using a relatively simple "single level polysilicon" process occupy a relatively large surface area on a programmable logic device (about twenty-five square microns) in comparison with non-volatile elements such as anti-fuses, which typically occupy only a few square microns. EEPROM transistors that occupy a few square microns of surface area are available, but only by using a more complex "double level polysilicon" process.
The floating gates in such transistor-based devices must be charged and discharged. Charging can be accomplished in two ways. The first way in which a floating gate may be charged is by a quantum-mechanical process called Fowler-Nordheim tunneling. With this mechanism, electrons tunnel through the insulating layer that separates the floating gate from the electrode upon application of a high electric field across the insulating layer. The second way in which a gate can be charged is by a process known as hot-electron charging. In this process, a hot electron current is formed between the source and drain of the transistor. Either Fowler-Nordheim tunneling or ultraviolet radiation can be used to discharge the floating gate of a floating gate transistor.
Programmable logic devices usually contain arrays of programmable logic elements, which are interconnected with orthogonal groups of bit lines and word lines. Bit lines and word lines are connected at their intersections by programmable logic elements. The programmable logic device can be programed to achieve a desired logic configuration by individually addressing the programmable logic elements using the bit lines and word lines. For example, the desired programming data for each programmable logic element can be provided by applying a predetermined programming voltage to selected word and bit lines. Devices are commonly programmed by sequentially programming each programmable logic element during a pass through the array.
It would therefore be desirable to provide a non-volatile programmable logic element that has two terminals that is electrically reprogrammable.
It would be further desirable to provide a programmable logic element that occupies less surface area and is simpler to fabricate than EEPROM transistor programmable logic elements.
It would be even more desirable to provide a programmable logic element that can be used as an anti-fuse element.